perm filename CUES.OLD[PAG,LCS] blob
sn#388641 filedate 1978-10-17 generic text, type C, neo UTF8
COMMENT ā VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 SUBROUTINE CUES(JCUE)
C00004 ENDMK
Cā;
SUBROUTINE CUES(JCUE)
COMMON /PX/KPN(1)/XRN/RN(1)/PTR/KWDS(1)/RCLF/KK,CLEF,KW,ITEM
DO 1 K=JCUE,1,-1
C BACK THROUGH ARRAY FROM LAST CUE FOUND.
IF(CODEN(KWDS,K,RN,J).NE.2)GO TO 1
C NEXT FOUND A REST
IF(RN(J).LT.8)GO TO 1
C JUMP IF WDCNT IS TOO SMALL
IF(RN(J+10).LT.100)GO TO 1
C P10=100+STAFF NUM. OF CUE DATA. JUMP IF IMPROPER NUM.
STF=RN(J+10)-100.
POS=RN(J+3)
C POSITION OF THIS REST
PLEFT=0
PRGHT=1000
C POSITIONS FOR BARS TO LEFT AND RIGHT. NEXT FIND PROPER BARS.
DO 2 L=1,ITEM
IF(CODEN(KWDS,L,RN,N).NE.4)GO TO 2
C FIND A BAR AND ITS POS.
X=RN(N+3)
IF(X.GT.POS)GO TO 3
C IS TO LEFT OR RIGHT OF REST?
IF(X.GT.PLEFT)PLEFT=X
GO TO 2
3 IF(X.LT.PRGHT)PRGHT=X
2 CONTINUE
C NOW FOUND BARS ON EACH SIDE OF REST.
DO 4 L=1,ITEM
C NOW FIND NOTES WITHIN PROPER BAR AND ON PROPER STAFF
R=CODEN(KWDS,L,RN,N)
IF(RN(N+2).NE.STF)GO TO 4
RS=RN(N+3)
C POS. OF ITEM.
IF(RS.GT.PRGHT)GO TO 4
IF(RS.LT.PLEFT)GO TO 4
C NOW BETWEEN BARS.
IF(R.GT.6)GO TO 4
C USE NOTES,RESTS,CLEFS,SLURS,BEAMS
RN(N+4)=RN(N+4)+100.
C MAKE ALL MINIS AND PUT ON STAFF 0
RN(N+2)=0
CALL QRN(N,KPN,L)
C GO PUT IT INTO Q ARRAY
4 CONTINUE
RN(J+8)=0
RN(J+7)=0
C ZERO RHYTHM OF THE WHOLE REST AND WHOLE REST FLAG(P8)
1 CONTINUE
END